package com.wyz.blo.impl;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wyz.blo.PersonManagerBLO;
import com.wyz.dao.PersonManagerDAO;
import com.wyz.model.vo.Person;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author 无涯子
 * @version 1.0
 * @date 2023/5/14 16:08:40
 * @description BLO层，只处理单一某个表的逻辑
 */
@Service
public class PersonManagerBLOImpl extends ServiceImpl<PersonManagerDAO,Person> implements PersonManagerBLO {
    @Resource
    private PersonManagerDAO personManagerDAO;

    /***
     * @description 更新人员信息
     * @param wrapper 更新人员信息
     * @return int
     * @author 无涯子
     * @date 2023/5/14 21:08:25
     */
    @Override
    public void updatePerson(Wrapper wrapper) {
        personManagerDAO.update(null,wrapper);
    }

    /***
     * @description 根据ID 删除人员信息
     * @param wrapper 删除人员信息
     * @return int
     * @author 无涯子
     * @date 2023/5/14 21:08:42
     */
    @Override
    public void deletePersonById(Wrapper wrapper) {
        personManagerDAO.delete(wrapper);
    }

    /***
     * @description 新增人员信息
     * @param person 新增信息
     * @return int
     * @author 无涯子
     * @date 2023/5/14 21:09:05
     */
    @Override
    public void addPerson(Person person) {
        personManagerDAO.insert(person);
    }

    /***
     * @description 批量更新根据ID
     * @param list
     * @return boolean
     * @author 无涯子
     * @date 2023/5/15 21:28:36
     */
    @Override
    public boolean updatePersonBatchById(List<Person> list) {
        return updateBatchById(list,list.size());
    }

    @Override
    public IPage<Person> queryPage(IPage<Person> page, Wrapper<Person> wrapper) {
        return personManagerDAO.selectPage(page,wrapper);
    }
}
